package com.pbase.ui.page;

import com.kunminx.architecture.ui.callback.UnPeekLiveData;
import com.pbase.domain.usercase.BaseUserCase;

import java.util.ArrayList;

import androidx.lifecycle.ViewModel;

/**
 * User: psn
 * Date: 2021/7/13
 * State-ViewModel的基类，shared-ViewModel不应继承该类
 */
public class BaseStateViewModel  extends ViewModel {
    public UnPeekLiveData<Boolean> isShowWaitDialog = new UnPeekLiveData<>();
    public UnPeekLiveData<String> errorTip = new UnPeekLiveData<>();
    private ArrayList<BaseUserCase> mUserCaseList = new ArrayList<>();

    public ArrayList<BaseUserCase> getUserCaseList() {
        return mUserCaseList;
    }

    protected void addUserCaseList(BaseUserCase... baseUserCases){
        for (BaseUserCase baseUserCase :baseUserCases){
            //UserCase使用的 isShowWaitDialog errorTip 在相同界面中地址相同均指向vm中，并在界面基类中被观察
            baseUserCase.setIsShowWaitDialog(isShowWaitDialog);
            baseUserCase.setErrorTip(errorTip);
            mUserCaseList.add(baseUserCase);//添加usercase列表，在界面基类统一绑定界面生命周期，实现业务跟随界面生命周期
        }
    }
}
